<?php
//------------------------------------------------------------ Contraintes d'accès de la page

	// on vérifie que cette page est appelée à partir de l'index et que l'utilisateur a le droit de consultation
	if(isset($_SESSION) && ($GLOBALS['USER']['level'] >= 2 || $GLOBALS['USER']['admin'])){

?>
<?php
//------------------------------------------------------------ Définition des variables d'affichage

	// variable indiquant la page sélectionnée
	if(isset($_GET['l']) && numericInt($_GET['l'])){ 
		$page = $_GET['l'];
	}else{
		$page = 1;
	}
   
		
	// variable indiquant l'ordre selon lequel on tri la liste
	if(isset($_GET['o'])){
		switch($_GET['o']){
		case 0: $ordre = 0; $ordreBDD = "ASC"; break;
		case 1: $ordre = 1; $ordreBDD = "DESC"; break;
		default: $ordre = 1; $ordreBDD = "DESC"; break;
		}
	}else{
		$ordre = 1;
		$ordreBDD = "DESC";
	}
	
	// variable indiquant la colonne selon laquelle on tri la liste
	if(isset($_GET['t'])){
		switch($_GET['t']){
		case 1: $tri = 1; $triBDD = "date ".$ordreBDD; break;
		case 2: $tri = 2; $triBDD = "structure ".$ordreBDD; break;
		case 3: $tri = 3; $triBDD = "convention ".$ordreBDD; break;
		default: $tri = 1; $triBDD = "date ".$ordreBDD; break;
		}
	}else{
		$tri = 1;
		$triBDD = "date ".$ordreBDD;
	}
	
	// Traitement des options
	$optionsSet = false;
	$optionsURL = "";
	
	if((isset($_POST['opt_seulStatut']) || isset($_GET['opt_seulStatut'])) && (isset($_POST['opt_statutType']) || isset($_GET['opt_statutType']))){
		if(isset($_POST['opt_statutType'])){
			$opt_statutType = $_POST['opt_statutType'];
		}else{
			$opt_statutType = $_GET['opt_statutType'];
		}
		if($opt_statutType >= 1 && $opt_statutType <= 2){
			$optionsURL .= "&amp;opt_seulStatut=1&amp;opt_statutType=".$opt_statutType."";
			$optionsSet = true;
		}
	}
	
?>
<?php
//------------------------------------------------------------ Récupération de la liste des commandes

	// On compte le nombre total de commandes
	$nb_total_commandes = 0;
	
	$query_compte_commandes = "SELECT COUNT(DISTINCT c.CODECOMMANDEINTERNE) ";
	$query_compte_commandes .= "FROM commande_interne c ";
	$query_compte_commandes .= "LEFT JOIN ligne_commande lc ON lc.CODECOMMANDEINTERNE = c.CODECOMMANDEINTERNE ";
	$query_compte_commandes .= "LEFT JOIN ligne_livraison ll ON ll.CODELIGNECOMMANDE = lc.CODELIGNECOMMANDE ";
	$query_compte_commandes .= "GROUP BY c.CODECOMMANDEINTERNE ";
	// Si l'utilisateur a saisi des options
	if($optionsSet){
		if(isset($opt_statutType)){
			switch($opt_statutType){
			case 1: $query_compte_commandes .= "HAVING COUNT(DISTINCT lc.CODELIGNECOMMANDE) = COUNT(DISTINCT ll.CODELIGNELIVRAISON) "; break;
			case 2: $query_compte_commandes .= "HAVING COUNT(DISTINCT lc.CODELIGNECOMMANDE) <> COUNT(DISTINCT ll.CODELIGNELIVRAISON) "; break;
			}
		}
	}
	
	$result_compte_commandes = mysql_query($query_compte_commandes, $connexion) or logError("COMPTE COMMANDES INTERNES-".$query_compte_commandes."-".mysql_error());
	
	$nb_total_commandes = mysql_num_rows($result_compte_commandes);
   
	mysql_free_result($result_compte_commandes);
	
	// récupération des informations des commandes
	$query_recuperation_liste_commandes = "SELECT c.CODECOMMANDEINTERNE AS id, c.DATECOMMANDE AS date, c.CONVENTIONSIGNEE AS convention, s.CODEJB AS numcor, s.NOMSTRUCTURE AS nomStruct, COUNT(DISTINCT lc.CODELIGNECOMMANDE) AS nbCommande, COUNT(DISTINCT ll.CODELIGNELIVRAISON) AS nbLivraison ";
	$query_recuperation_liste_commandes .= "FROM commande_interne c ";
	$query_recuperation_liste_commandes .= "INNER JOIN structure s ON s.CODESTRUCTURE = c.CODESTRUCTURE ";
	$query_recuperation_liste_commandes .= "LEFT JOIN ligne_commande lc ON lc.CODECOMMANDEINTERNE = c.CODECOMMANDEINTERNE ";
	$query_recuperation_liste_commandes .= "LEFT JOIN ligne_livraison ll ON ll.CODELIGNECOMMANDE = lc.CODELIGNECOMMANDE ";
	$query_recuperation_liste_commandes .= "GROUP BY c.CODECOMMANDEINTERNE ";
	// Si l'utilisateur a saisi des options
	if($optionsSet){
		if(isset($opt_statutType)){
			switch($opt_statutType){
			case 1: $query_recuperation_liste_commandes .= "HAVING nbCommande = nbLivraison "; break;
			case 2: $query_recuperation_liste_commandes .= "HAVING nbCommande <> nbLivraison "; break;
			}
		}
	}
	$query_recuperation_liste_commandes .= "ORDER BY ".$triBDD." ";
	$query_recuperation_liste_commandes .= "LIMIT ".(($page-1)*$GLOBALS['CONFIG']['nbParPage']).", ".($GLOBALS['CONFIG']['nbParPage'])." ";
	
	$result_recuperation_liste_commandes = mysql_query($query_recuperation_liste_commandes, $connexion) or logError("RECUPERATION LISTE COMMANDES INTERNES-".$query_recuperation_liste_commandes."-".mysql_error());
	
	$lst_commandes = array(); // on créé un tableau qui contient la liste des commandes ainsi que les informations de chacune
	$nb_commandes = 0;
	while($tab_recuperation_liste_commandes = mysql_fetch_assoc($result_recuperation_liste_commandes)){
	
		$lst_commandes[$nb_commandes] = $tab_recuperation_liste_commandes;
		$nb_commandes++;
		
	}
	
	mysql_free_result($result_recuperation_liste_commandes);

?>
<a name="liste"></a>
<h2>Liste des commandes du jardin botanique</h2>

<?php 

   $tabth = array ('Date','Destinataire','Conv.','Statut');
   
   $extraIcon = array();
   
   for($i=0;$i<$nb_commandes;$i++){
   
      if($lst_commandes[$i]['nbLivraison'] == 0){
   		$statut = "<span style=\"font-weight: bold; color: #FF0000;\">".$lst_commandes[$i]['nbLivraison']."/".$lst_commandes[$i]['nbCommande']."</span>";
   	}else { 
         if($lst_commandes[$i]['nbLivraison'] == $lst_commandes[$i]['nbCommande']){
   			$statut = "<span style=\"font-weight: bold; color: #00AA00;\">".$lst_commandes[$i]['nbLivraison']."/".$lst_commandes[$i]['nbCommande']."</span>";
   		}else{
   			$statut = "<span style=\"font-weight: bold; color: #00AAFF;\">".$lst_commandes[$i]['nbLivraison']."/".$lst_commandes[$i]['nbCommande']."</span>";
   		}
      }
      
      if($GLOBALS['USER']['level'] >= 4 || $GLOBALS['USER']['admin']){ // l'utilisateur a le droit de modifier
			$extraIcon[$i] = " - <a href=\"index.php?p=gestion/commandeinterne_livre&amp;id=".$lst_commandes[$i]['id']."\"><img src=\"images/livraison.gif\" title=\"Indiquez la livraison de la commande\" alt=\"Livraison\" /></a>";
		} else {
         $extraIcon[$i] = "";
      }
   
      $tab_result[$i] = array (  htmlentities($lst_commandes[$i]['id'], ENT_NOQUOTES, "UTF-8"),
                                 dateFr(htmlentities($lst_commandes[$i]['date'], ENT_NOQUOTES, "UTF-8")),
                                 htmlentities("(".$lst_commandes[$i]['numcor'].") ".$lst_commandes[$i]['nomStruct'], ENT_NOQUOTES, "UTF-8"),
                                 "<img src=\"images/".boolToText((bool)$lst_commandes[$i]['convention']).".png\" alt=\"".boolToText((bool)$lst_commandes[$i]['convention'])."\" />",
                                 $statut, );
   
   }

   
   displayListe("commandeinterne",620,$nb_total_commandes,$optionsURL,'',1,$extraIcon);



?>

<div class="options" style="margin-left: auto; margin-right: auto; width: 621px">
	<span id="indOF_options"><?php if($optionsSet) echo "▼"; else echo "►"; ?></span> <a href="#liste" onclick="ouvrirFermerTXT('lst_options', 1, 'indOF_options', '▼', '►'); return false;">Options</a>
	<div id="lst_options" style="display: <?php if($optionsSet) echo "block"; else echo "none"; ?>;">
		<form id="frm_options" method="post" action="index.php?p=gestion/commandeinterne_gere&amp;l=<?php echo $page; ?>&amp;t=<?php echo $tri; ?>&amp;o=<?php echo $ordre; ?>#liste">
			<input id="opt_seulStatut" type="checkbox" name="opt_seulStatut" <?php if(isset($_POST['opt_seulStatut']) || isset($_GET['opt_seulStatut'])) echo "checked=\"checked\""; ?> />
			<label>Seulement les commandes</label> 
			<select name="opt_statutType" onchange="document.getElementById('opt_seulStatut').checked=true;">
				<option value="1" <?php if(isset($opt_statutType) && $opt_statutType == 1) echo "selected=\"selected\""; ?>>Traitées</option>
				<option value="2" <?php if(isset($opt_statutType) && $opt_statutType == 2) echo "selected=\"selected\""; ?>>En attente</option>
			</select>
			<input type="submit" value="ok" />
		</form>
	</div>
</div>
<br />
<div class="information">
	<div class="titre">Légende</div>
	<p>
		<b>Statut :</b><br />
		[végétaux traités / végétaux commandés]
	</p>
</div>
<div class="information">
	<div class="titre">Information</div>
	<h4>Convention :</h4>
	<p>Indique si oui ou non la convention de la commande a été signée.</p>
</div>
<?php
//------------------------------------------------------------ Accès refusé à la page

	}else{
		if(isset($_SESSION)){
			if(!isset($_SESSION['user_id'])){ // si l'utilisateur n'est pas connecté
				include("pages/connexion.php");
			}else{ // si l'utilisateur est connecté et qu'il n'a pas accès à la page, c'est qu'il n'a pas le droit d'utilisation nécessaire
				include("pages/401.htm");
			}
		}
	}

?>